package ru.sanluck.tg.command;

import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import org.telegram.telegrambots.meta.api.objects.Message;
import org.telegram.telegrambots.meta.bots.AbsSender;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import ru.sanluck.tg.Dialog;

import java.util.Set;

public interface TgCommand {
    /**
     * Текст команды (/команда)
     *
     * @return текст команды
     */
    String commandText();

    Set<Dialog> dialogs();

    /**
     * Выполнить команду
     *
     * @param message входящее сообщение
     * @param sender  функция-отправщик (org.telegram.telegrambots.meta.bots.AbsSender)
     */
    void executeCommand(Message message, AbsSender sender);

    default void sendTextMessage(Long chatId, String message, AbsSender sender) {
        SendMessage sendMessage = new SendMessage();
        sendMessage.setChatId(chatId);
        sendMessage.setText(message);

        try {
            sender.execute(sendMessage);
        } catch (TelegramApiException e) {
            System.out.println(e.getMessage());
        }
    }
}
